home *** CD-ROM | disk | FTP | other *** search
- /*
- File: CompositeClassDriver.h
-
- Contains: Header file for Composite Class Driver
-
- Version: xxx put version here xxx
-
- Copyright: © 1997-1999 by Apple Computer, Inc., all rights reserved.
-
- */
- #ifndef __CompositeCLASSDRIVERH__
- #define __CompositeCLASSDRIVERH__
-
- #include <Types.h>
- #include <Devices.h>
- #include <DriverServices.h>
- #include <Processes.h>
- #include <USB.h>
-
- #define kCompositeDriverName "\pUSBCompositeDriver"
-
- Boolean immediateError(OSStatus err);
- void CompositeDeviceInitiateTransaction(USBPB *pb);
- void CompositeDeviceCompletionProc(USBPB *pb);
- void InitParamBlock(USBDeviceRef theDeviceRef, USBPB * paramblock);
-
- OSStatus CompositeDriverInitInterface(UInt32 interfaceNum, USBInterfaceDescriptor *interfaceDesc, USBDeviceDescriptor *deviceDesc, USBDeviceRef device);
- OSStatus CompositeDriverNotifyProc(UInt32 notification, void *pointer, UInt32 refcon);
- OSStatus CompositeDriverValidateHW(USBDeviceRef device, USBDeviceDescriptor *desc);
- OSStatus CompositeDriverInitialize(USBDeviceRef device, USBDeviceDescriptorPtr pDesc, UInt32 busPowerAvailable);
- OSStatus CompositeDriverFinalize(USBDeviceRef theDeviceRef, USBDeviceDescriptorPtr pDesc);
-
- void DeviceInitialize(USBDeviceRef device, USBDeviceDescriptorPtr pDeviceDescriptor, UInt32 busPowerAvailable);
-
- OSErr GetInterfaceDescriptor(LogicalAddress pConfigDesc, UInt32 ReqInterface, USBInterfaceDescriptorPtr *hInterfaceDesc);
-
- #define kCompositeRetryCount 5
-
- enum driverstates
- {
- kUndefined = 0,
- kSetConfig,
- kGetFullConfiguration0,
- kGetFullConfiguration1,
- kNewInterfaceRef,
- kReturnFromDriver = 0x1000,
- kRetryTransaction = 0x2000,
- kSyncTransaction = 0x4000,
- kCompletionPending = 0x8000
- };
-
- typedef struct
- {
- USBPB pb;
- void (*handler)(USBPB *pb);
-
- USBDeviceRef deviceRef;
-
- Boolean driverRemovalPending;
- Boolean expertTerminatePending; // TCC <USB9>
-
- USBDeviceDescriptor deviceDescriptor;
- USBConfigurationDescriptor partialConfigDescriptor;
- USBConfigurationDescriptorPtr pFullConfigDescriptor;
-
- USBInterfaceDescriptor interfaceDescriptors[32];
- USBInterfaceRef interfaceRefArray[32];
- USBRqIndex interfaceCount;
- USBRqIndex interfaceIndex;
-
- SInt32 retryCount;
- SInt32 delayLevel;
- SInt32 transDepth;
- UInt32 busPowerAvailable;
- } usbCompositePBStruct;
-
- #endif //__CompositeCLASSDRIVERH__